/*
 * Copyright (c) 2018-2999 湖南洛云网络科技有限公司 All rights reserved.
 *
 * https://www.gz-yami.com/
 *
 */

package com.yami.shop.sys.comment.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yami.shop.sys.comment.model.ShopMenu;

import java.util.List;

/**
 * 菜单管理
 * @author yami
 * @date 2021-03-01 17:42:09
 */
public interface ShopMenuService extends IService<ShopMenu> {

    /**
     * 获取所有菜单信息与按钮列表
     * @return 菜单信息与按钮列表
     */
    List<ShopMenu> listMenuAndBtn();

    /**
     * 获取不是按钮类型的菜单列表
     * @return 菜单列表
     */
    List<ShopMenu> listSimpleMenuNoButton();

    /**
     * 获取类型为目录的菜单列表
     * @return 菜单列表
     */
    List<ShopMenu> listRootMenu();

    /**
     * 根据父ID获取所有子菜单列表
     * @param parentId 父ID
     * @return 菜单列表
     */
    List<ShopMenu> listChildrenMenuByParentId(Long parentId);

    /**
     * 根据菜单ID删除菜单以及删除菜单与角色关联关系
     * @param menuId 菜单ID
     */
    void deleteMenuAndRoleMenu(Long menuId);

    /**
     * 根据用户ID获取菜单列表
     * @param employeeId 用户ID
     * @return 菜单列表
     */
    List<ShopMenu> listMenuByEmployeeId(Long employeeId);

    /**
     * 查询角色对应的菜单ID
     * @param roleId 角色ID
     * @return 菜单ID列表
     */
    List<Long> listMenuIdByRoleId(Long roleId);
}
